/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.micda.moroccoby.front.form;

import com.micda.moroccoby.common.dao.ProduitDAO;
import com.micda.moroccoby.common.entities.Produit;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Administrateur
 */
@ManagedBean(name = "panierBean")
@RequestScoped
public class PanierBean implements Serializable {

    private float total = 0.F;
    private List<LignePanier> lignePaniers = new ArrayList<LignePanier>();
    private int countProd;
    @EJB
    transient ProduitDAO pdao;

    /**
     * Creates a new instance of PanierBean
     */
    public PanierBean() {
    }

    public void add() {
        System.out.println("################################## WAL PANIER WA KHEDMI");
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        Produit p = new Produit();
        p.setId(new Integer(rq.getParameter("idProd")));
        LignePanier ligne = new LignePanier();
        ligne.setProduit(p);
        ligne.setQuantite(new Integer(rq.getParameter("qte")));
        if (!lignePaniers.contains(ligne)) {
            p = pdao.find(p.getId());
            ligne.setProduit(p);
            lignePaniers.add(ligne);
        } else {
            lignePaniers.get(lignePaniers.indexOf(ligne)).setQuantite(
                    lignePaniers.get(lignePaniers.indexOf(ligne)).getQuantite() + ligne.getQuantite());
        }
    }

    public void remove() {
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        int idProd = new Integer(rq.getParameter("idProd"));
        for (LignePanier lp : lignePaniers) {
            if (lp.getProduit().getId().equals(idProd)) {
                lignePaniers.remove(lp);
                break;
            }
        }
    }

    /**
     * @return the total
     */
    public float getTotal() {
        total = 0;
        for (LignePanier lp : lignePaniers) {
            total += lp.getSousTotal();
        }
        return total;
    }

    /**
     * @param total the total to set
     */
    public void setTotal(float total) {
        this.total = total;
    }

    /**
     * @return the lignePaniers
     */
    public List<LignePanier> getLignePaniers() {
        return lignePaniers;
    }

    /**
     * @param lignePaniers the lignePaniers to set
     */
    public void setLignePaniers(List<LignePanier> lignePaniers) {
        this.lignePaniers = lignePaniers;
    }

    /**
     * @return the countProd
     */
    public int getCountProd() {
        return lignePaniers.size();
    }

    /**
     * @param countProd the countProd to set
     */
    public void setCountProd(int countProd) {
        this.countProd = countProd;
    }
}
